﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ERPWinFormWork
{
    public static class AppConfigMaterial
    {
        private static string _apiBaseUrl;
        private static readonly Lazy<Task> _initializationTask;

        public static string ApiBaseUrl
        {
            get
            {
                // 等待初始化完成，返回已经加载的配置值
                if (_initializationTask.Value.IsCompleted)
                {
                    return _apiBaseUrl;
                }
                return "http://10.223.8.23:11";
            }
        }
        public static Task InitializeAsync()
        {
            // 触发并返回初始化任务，供启动阶段等待
            return _initializationTask.Value;
        }
        static AppConfigMaterial()
        {
            // 使用 Lazy 初始化异步配置加载
            _initializationTask = new Lazy<Task>(InitializeConfigAsync);
        }

        private static async Task InitializeConfigAsync()
        {
            string key = "erpmaterial";  // Apollo 配置中的 Key
            string configValue = await ApolloConfigManager.GetConfigAsync(key);

            // 设置 API 基础 URL（如果未能获取到配置，使用默认值）
            _apiBaseUrl = configValue ?? "http://10.223.8.23:8008/";
        }
    }
}